﻿using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using T.AuditField;

namespace T.Personnel.Domain
{
    /// <summary>
    /// 人员登记表
    /// </summary>
    [Table("Register")]
    public class Register:AuditFields
    {
        /// <summary>
        /// 人员登记id
        /// </summary>
        [Key]
        public int Id { get; set; }
        /// <summary>
        /// 全球唯一标识符
        /// </summary>
        [Required]
        [StringLength(100)]
        public string Guid { get; set; }
        /// <summary>
        /// 人员登记名称
        /// </summary>
        [Required]
        [StringLength(100)]
        public string Name { get; set; }
        /// <summary>
        /// 性别
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Sex { get; set; }
        /// <summary>
        /// 手机号
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Phone { get; set; }
        /// <summary>
        /// 院校
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Shcool { get; set; }
        /// <summary>
        /// 专业
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Specialty { get; set; }
        /// <summary>
        /// 家庭地址
        /// </summary>
        [Required]
        [StringLength(100)]
        public string Address { get; set; }
        /// <summary>
        /// 学历
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Education { get; set; }
        /// <summary>
        /// 政治面貌
        /// </summary>
        [Required]
        [StringLength(50)]
        public string? PoliticsStatus { get; set; }
        /// <summary>
        /// 民族
        /// </summary>
        [Required]
        [StringLength(50)]
        public string? Nation { get; set; }
        /// <summary>
        /// 籍贯
        /// </summary>
        [Required]
        [StringLength(50)]
        public string? Birthplace { get; set; }
        /// <summary>
        /// 婚姻
        /// </summary>
        [Required]
        [StringLength(50)]
        public string? Marriage { get; set; }
        /// <summary>
        /// 出生年月
        /// </summary>
        [Required]
        public DateTime? Birthday { get; set; }
        /// <summary>
        /// 邮箱
        /// </summary>
        [Required]
        [StringLength(50)]
        public string? Email { get; set; }
        /// <summary>
        /// 身份者号
        /// </summary>
        [Required]
        [StringLength(50)]
        public string? IdNumber { get; set; } = null;
        /// <summary>
        /// 部门id
        /// </summary>
        [Required]
        public int DepartmentId { get; set; }
        /// <summary>
        /// 部门
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Department { get; set; }
        /// <summary>
        /// 职位id
        /// </summary>
        [Required]
        public int PositionId { get; set; }
        /// <summary>
        /// 职位
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Position { get; set; }
        /// <summary>
        /// 员工类别
        /// </summary>
        [Required]
        [StringLength(50)]
        public string EmployeeType { get; set; }
        /// <summary>
        /// 入职日期
        /// </summary>
        public DateTime? Hiredate { get; set; } = null;
        /// <summary>
        /// 状态(待入职，待离职，待转正)
        /// </summary>
        [Required]
        [StringLength(50)]
        public string State { get; set; }
    }
}
